/**
 * 给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的字母异位词;
  示例 1: 输入: s = "anagram", t = "nagaram" 输出: true;
  示例 2: 输入: s = "rat", t = "car" 输出: false;
  若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词.

  思路:如果两个字符串长度不相等,那么一定不是字母异位词.
  字母a到字母z的ASCII是26个连续的数值,把字母a定位base值,下标定为0,z就是25.
  然后分别遍历字符串s和t,s中进行++操作,t中进行--操作,
  如果最后的结果集不为0,那么它们就不是字母异位词,如果为0,那么就是字母异位词.
 */

var isAnagram = function (s, t) {
  // 长度不相等,不是字母异位词
  if (s.length !== t.length) { return false };
  // 结果集
  const res = new Array(26).fill(0);
  //a为基准字符,下标为0
  const base = "a".charCodeAt();
  for (const i of s) {
    res[i.charCodeAt() - base]++;
  }
  for (const i of t) {
    // 结果集相减,如果结果集不为0,那么不是字母异位词.
    if (!res[i.charCodeAt() - base]) { return false };
    res[i.charCodeAt() - base]--;
  }
  return true;
}
